package com.boot.constants;

/**
 * 全局状态常量类：统一管理系统中各类业务状态码和状态值
 */
public class StatusConstants {

    private StatusConstants() {
        throw new AssertionError("No instances for utility class");
    }

    /**
     * 问题状态（Question.status）
     */
    public static class QuestionStatus {
        private QuestionStatus() {}

        /** 待审核 */
        public static final String PENDING_REVIEW = "pending_review";

        /** 已驳回 */
        public static final String REJECTED = "rejected";

        /** 等待接单（专家待响应） */
        public static final String WAITING = "waiting";

        /** 处理中 */
        public static final String IN_PROGRESS = "in_progress";

        /** 已解决 */
        public static final String RESOLVED = "resolved";

        /** 等待管理员处理 */
        public static final String AWAITING_ADMIN = "awaiting_admin";
    }

    /**
     * 用户状态（User.status）
     */
    public static class UserStatus {
        private UserStatus() {}

        /** 可用/启用 */
        public static final String ENABLED = "0";

        /** 禁用 */
        public static final String DISABLED = "1";
    }

    /**
     * 问题分配响应状态（QuestionAssignment.accepted）
     */
    public static class AssignmentStatus {
        private AssignmentStatus() {}

        /** 已接受 */
        public static final String ACCEPTED = "ACCEPTED";

        /** 已拒绝 */
        public static final String REJECTED = "REJECTED";

        /** 待响应（数据库中为 NULL） */
        public static final String PENDING = null;
    }

    /**
     * 评论状态（Comment.status）
     */
    public static class CommentStatus {
        private CommentStatus() {}

        /** 待审核 */
        public static final String PENDING = "pending";

        /** 已通过 */
        public static final String APPROVED = "approved";

        /** 已驳回 */
        public static final String REJECTED = "rejected";

        /** 已禁用（人工下架） */
        public static final String DISABLED = "disabled";
    }

    /**
     * 图片状态（ImageInfo.status）
     */
    public static class ImageStatus {
        private ImageStatus() {}

        /** 已通过 */
        public static final String APPROVED = "approved";

        /** 已禁用（人工下架） */
        public static final String DISABLED = "disabled";
    }
}
